package Task_03;

public class PhonePackage extends AbstractPackage implements ServeCall {
    // 记录短信条数
    private int message;

    //初始化通话套餐
    public PhonePackage(int price, int phonePackage,int message) {
        // 继承抽象套餐类
        super(price,phonePackage);
        // 设置短信
        setMessage(message);
    }

    public void setMessage(final int message) {
        this.message = message;
    }

    public int getMessage() {
        return message;
    }

    // 重写抽象套餐类，打印套餐信息；
    @Override
    public void showInfo() {
        System.out.printf("通话套餐：时长包%d分钟;每月资费%d元/分钟;短信%d条;\n", getPhonePackage(), getPrice(), getMessage());
    }

    // 重写通话服务接口方法
    @Override
    public void server(int callDuration, PhoneCard phoneCard) {    // 重写通话服务接口方法
            // 消费金额=通话数量*资费
            int consumeValue=callDuration*getPrice();
            // 手机余额减消费
            phoneCard.setAccountBalance(phoneCard.getAccountBalance() - consumeValue);
            // 添加通话消费时长
            phoneCard.addConsume(consumeValue,callDuration,0);
            // 打印手机卡当前消费信息
            phoneCard.showInfo();
        }
    }